package com.lanhe.identifier.service;

import com.lanhe.identifier.domain.LhIdentifier;
import com.lanhe.identifier.domain.vo.LhIdentifierStatVO;

import java.util.List;

/**
 * 识别码(LhIdentifier)表服务接口
 *
 * @author zhanggl
 * @since 2023-09-18 20:07:31
 */
public interface ILhIdentifierService {

	/**
	 * 根据条件分页查询识别码列表
	 *
	 * @param identifier 识别码
	 * @return 识别码信息集合信息
	 */
	List<LhIdentifier> selectIdentifierList(LhIdentifier identifier);

	/**
	 * 查询识别码信息
	 *
	 * @param identifierId 组ID
	 * @return 识别码信息
	 */
	LhIdentifier selectIdentifierById(Long identifierId);

	/**
	 * 批量查询识别码信息
	 *
	 * @param identifierIds 组IDs
	 * @return 识别码信息集合
	 */
	List<LhIdentifier> selectIdentifierByIds(Long[] identifierIds);

	/**
	 * 新增识别码信息
	 *
	 * @param identifier 识别码信息
	 * @return 结果
	 */
	int insertIdentifier(List<LhIdentifier> identifier);

	/**
	 * 批量删除识别码信息
	 *
	 * @param identifierIds 需要删除的参数ID
	 * @return 结果
	 */
	int deleteIdentifierByIds(Long[] identifierIds);

	/**
	 * 提取有效识别码
	 *
	 * @param number 提取数量
	 * @return 结果
	 */
	List<LhIdentifier> extractByNumber(Integer number);

	/**
	 * 修改已提取的效识别码
	 *
	 * @param identifierIds 提取数量
	 * @return 结果
	 */
	int updateExtractStatus(Long[] identifierIds);

	/**
	 * 统计已提取、未提取
	 *
	 * @return 结果
	 */
	LhIdentifierStatVO stat();
}

